home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / p4 / p4-1_2c.lha / p4-1.2c / usc / usc.h < prev   
C/C++ Source or Header  |  1993-05-24  |  3KB  |  170 lines

  1. /*
  2.  * USC.H  (Public header file for the Microsecond Clock package)
  3.  *     This header file has to be included by an application using
  4.  * the USC function calls.
  5.  *
  6.  * Written by:  Arun Nanda    (07/17/91)
  7.  * Modified by R. Butler
  8.  *
  9.  * The following machine-specific libraries need to be linked in
  10.  * with the application using the UST functions:
  11.  *
  12.  */
  13.  
  14. #ifndef _USC_DEFS_   /* takes care of multiple inclusion of this file */
  15. #define _USC_DEFS_
  16.  
  17. #ifdef SUN_IPC
  18. #define SUN
  19. #endif
  20.  
  21. #ifdef CONVEX
  22. #define SUN
  23. #endif
  24.  
  25. #ifdef DEC5000_IPC
  26. #define DEC5000
  27. #endif
  28.  
  29. #ifdef HP_IPC
  30. #define HP
  31. #endif
  32.  
  33. #ifdef SP1
  34. #define RS6000
  35. #endif
  36.  
  37. #ifdef RS6000_IPC
  38. #define RS6000
  39. #endif
  40.  
  41. #ifdef IBM3090_IPC
  42. #define IBM3090
  43. #endif
  44.  
  45. #ifdef TITAN_IPC
  46. #define TITAN
  47. #endif
  48.  
  49. #ifdef SGI_IPC
  50. #define SGI
  51. #endif
  52.  
  53. #ifdef DELTA
  54. #define IPSC860
  55. #endif
  56.  
  57. #ifdef PARAGON
  58. #define IPSC860
  59. #endif
  60.  
  61.  
  62. /* ---------------------
  63.  Global declarations
  64. --------------------- */
  65.  
  66. typedef unsigned long usc_time_t;
  67.  
  68. #ifndef VOID
  69. #    if defined(BALANCE) || defined(FX8)
  70. #        define VOID int
  71. #    else
  72. #        define VOID void
  73. #    endif
  74. #endif
  75.  
  76. /* --------------------------------
  77.  Machine dependent declarations
  78. -------------------------------- */
  79.  
  80. #if defined(MULTIMAX)
  81.  
  82.      extern unsigned *usc_multimax_timer;
  83.  
  84. #endif
  85.  
  86.  
  87. #if defined(SYMMETRY) || defined(SYMMETRY_PTX)
  88.  
  89. #ifndef GETUSCLK
  90. #    include <usclkc.h>
  91. #endif
  92. #endif 
  93.  
  94. extern usc_time_t usc_MD_rollover_val;
  95.  
  96. /* -----------------------
  97.  user interface macros
  98. ----------------------- */
  99.  
  100. #if defined(MULTIMAX)
  101.  
  102. #    define usc_clock() ((usc_time_t) *usc_multimax_timer)
  103. #    define usc_rollover_val()  (usc_MD_rollover_val)
  104.  
  105. #else
  106.  
  107. #if defined(SYMMETRY) || defined(SYMMETRY_PTX)
  108.  
  109. #    define usc_clock() ((usc_time_t) getusclk())
  110. #    define usc_rollover_val()  (usc_MD_rollover_val)
  111.  
  112. #else
  113.  
  114. #if defined(TC_2000) || defined(TC_2000_TCMP)
  115.  
  116. #    define usc_clock() usc_MD_clock()
  117. #    define usc_rollover_val()  (usc_MD_rollover_val)
  118.  
  119. #else
  120.  
  121. #if defined (NCUBE)
  122.  
  123. #    define usc_clock() usc_MD_clock()
  124. #    define usc_rollover_val()  (usc_MD_rollover_val)
  125.  
  126. #else
  127.  
  128. #if defined (IPSC860)
  129.  
  130. #    define usc_clock() usc_MD_clock()
  131. #    define usc_rollover_val()  (usc_MD_rollover_val)
  132.  
  133. #else
  134.  
  135. #if defined(FX2800)  ||   defined(FX2800_SWITCH)
  136. #    define usc_clock() usc_MD_clock()
  137. #    define usc_rollover_val()  (usc_MD_rollover_val)
  138. #else 
  139.  
  140. #if defined(SUN) || defined(DEC5000) || defined(HP) \
  141.     || defined(IBM3090) || defined(RS6000) \
  142.     || defined(NEXT) || defined(TITAN) || defined(GP_1000) \
  143.     || defined(KSR) \
  144.     || defined(SGI) || defined(FX8)
  145.  
  146. #    define usc_clock() usc_MD_clock()
  147. #    define usc_rollover_val()  (usc_MD_rollover_val * 1000000 - 1)
  148.  
  149. #else
  150.  
  151. #    define usc_clock() 0
  152. #    define usc_rollover_val() 0
  153.  
  154. #endif
  155. #endif
  156. #endif
  157. #endif
  158. #endif
  159. #endif
  160. #endif
  161.  
  162. /* ----------------------
  163.   function prototypes
  164. ---------------------- */
  165.  
  166. VOID usc_init();
  167. usc_time_t usc_MD_clock();
  168.  
  169. #endif
  170.